﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace TwoGesture
{
    class ControlLogin
    {
        private static ControlLogin ObjCtrLoguin;
        private Conexion ObjConexion=Conexion.InsConexion();

        public static ControlLogin InsConexion()
        {
            if (ObjCtrLoguin == null)
            {
                ObjCtrLoguin = new ControlLogin();
            }
            return ObjCtrLoguin;
        }

        public bool IniciarSesion(String usuario, String contraseña)
        {

            SqlConnection ConexionSQL = ObjConexion.Enlace();
            bool acceso = false;

            if (usuario == "")
            {
                MessageBox.Show("Parece que no has ingresado tu usuario");
            }
            else
            {
                if (contraseña == "")
                {
                    MessageBox.Show("Parece que no has ingresado tu contraseña");
                }
                else
                {
                    
                    ObjConexion.Enlace();
                    ConexionSQL.Close();
                    ConexionSQL.Open();
                    String nueva = contraseña;
                    //this.Encriptacion(contraseña);
                    SqlCommand cmd = new SqlCommand("Select * from doctor where usuario=@usuario and contrasenia=@contrasenia and activo='1'", ConexionSQL);
                    cmd.Parameters.AddWithValue("@usuario", usuario);
                    cmd.Parameters.AddWithValue("@contrasenia", nueva);
                    SqlDataReader rdr = cmd.ExecuteReader();
                                        
                    if (!rdr.Read())
                    {
                        rdr.Close();
                        cmd = new SqlCommand("Select * from paciente where usuario=@usuario and contrasenia=@contrasenia and activo='1'", ConexionSQL);
                        cmd.Parameters.AddWithValue("@usuario", usuario);
                        cmd.Parameters.AddWithValue("@contrasenia", nueva);
                        rdr = cmd.ExecuteReader();


                        if (!rdr.Read())
                        {
                            MessageBox.Show("No existe el usuario o la contraseña es incorrecta");
                            acceso = false;
                        }
                        else
                        {
                            int Cont = 1;

                            while (rdr.Read())
                            {
                                Cont = Cont + 1;
                            }

                            if (Cont == 1)
                            {
                                ControlExamen cte = ControlExamen.InsCtrExamen();
                                rdr.Close();
                                cte.Datosusuario(cmd.ExecuteScalar().GetHashCode().ToString());
                                FormUsuario FrmUsuario = new FormUsuario();
                                FrmUsuario.Show();
                                acceso = true;
                            }
                        }
                    }
                    else
                    {
                        int Cont = 1;
                        

                        while (rdr.Read())
                        {
                            Cont = Cont + 1;
                        }

                        if (Cont == 1)
                        {
                            ControlAdministrador cta = ControlAdministrador.InsCtrAdministrador();
                            rdr.Close();
                            cta.DatosDr(cmd.ExecuteScalar().GetHashCode().ToString());
                            FormAdmin FrmAdmin = new FormAdmin();
                            FrmAdmin.Show();
                            acceso = true;
                        }
                    }
                }
            }
    
            ConexionSQL.Close();
            return acceso;
        }


    }
}
